package com.itany.corejava.code06_数组;

import java.util.Arrays;

/**
 * @author: 石小俊
 * @date: 2023年03月06日 11:17
 * @version: 1.0
 */
public class Test07_二维数组 {
    public static void main(String[] args) {
        int[][] arr = new int[2][2];
        // 此时如果通过new为元素重新赋值,会更改堆的地址
        // 因此,长度可以发生变化
        arr[0] = new int[]{1,2,3};
        arr[0][0] = 1;
        arr[0][1] = 2;
        arr[1][0] = 3;
        arr[1][1] = 4;
        // arr[2][0] = 5; // 报错

        for(int i = 0; i < arr.length; i++){
            System.out.println(Arrays.toString(arr[i]));
        }

        System.out.println("----------------------");

        int[][] arr2 = new int[2][];
        // 在定义二维数组时,没有指定元素中数组的长度
        // 在赋值前,必须进行指定
        // 此时相当于为每一个元素在堆中开辟空间
        arr2[0] = new int[4];
        arr2[0][0] = 1;
        arr2[0][1] = 2;
        arr2[0][2] = 3;
        arr2[0][3] = 4;
        arr2[1] = new int[2];
        arr2[1][0] = 5;
        arr2[1][1] = 6;

        for(int i = 0; i < arr2.length; i++){
            System.out.println(Arrays.toString(arr2[i]));
        }
        System.out.println("----------------------");
        int[][] arr3 = new int[][]{
                {1,2,3,4},
                {5,6},
                {7,8,9}
        };
        for(int i = 0; i < arr3.length; i++){
            System.out.println(Arrays.toString(arr3[i]));
        }

        System.out.println("----------------------");
        int[][] arr4 = {
                {1,2,3,4},
                {5,6},
                {7,8,9}
        };
        for(int i = 0; i < arr4.length; i++){
            System.out.println(Arrays.toString(arr4[i]));
        }


    }
}
